package com.cyf.merchat.service;

import com.cyf.app.network.bean.AppBusinessRsp;
import com.cyf.merchat.network.bean.*;

/**
 * 商户操作业务接口
 * Created by cage on 2017/3/29.
 */
public interface MerchantService {

    /**
     * 商户登录
     *
     * @param req MerchantLoginReq
     * @return MerchantLoginRsp
     */
    MerchantLoginRsp login(MerchantLoginReq req);

    /**
     * 商户登录
     *
     * @param req MerchantLoginReq
     * @return MerchantLoginRsp
     */
    MerchantLoginRsp appLogin(MerchantLoginReq req);

    /**
     * 商户退出登录
     * @param merchantId
     * @return
     */
    MerchantLoginRsp signOutLogin(Integer merchantId);
    /**
     * 切换车场
     *
     * @param merchantId
     * @return
     */
    MerchantLoginRsp switchParking(Integer merchantId);

    /**
     * 根据手机号查询是否是app用户
     *
     * @param req
     * @return
     */
    MerchantCheckAppUserByMobileRsp checkIsAppUserByMobile(MerchantCheckAppUserByMobileReq req);

    /**
     * 保存优惠券信息
     *
     * @param req MerchantSaveQrcodeInfoReq
     * @return MerchantSaveQrcodeInfoRsp
     */
    MerchantSaveCouponInfoRsp saveCouponInfo(MerchantSaveCouponInfoReq req);


    /**
     * 修改密码
     *
     * @param req
     * @return
     */
    MerchantUpdatePwdRsp updatePwdRsp(MerchantUpdatePwdReq req);

    /**
     * 商户优惠券发放记录
     *
     * @param req
     * @return
     */
    MerchantCouponLssueRecordRsp issueRecord(MerchantCouponLssueRecordReq req);

    /**
     * 回收优惠券
     *
     * @param ids
     * @return
     */
    AppBusinessRsp takeBack(String ids);

    /**
     * 获取当前车场的优惠券规则
     *
     * @param parkingId
     * @return
     */
    MerchantFeegroupRsp parkingFeegroup(Integer parkingId, Integer merchatId);

    MerchantFeegroupRsp parkingByFeegroupId(Integer parkingId, Integer feeGroupId);

    /**
     * 生成优惠券
     *
     * @param saveCouponReq
     * @return
     */
    MerchantSaveCouponInfoRsp saveCoupon(SaveCouponReq saveCouponReq);

    /**
     * 商户充值记录
     *
     * @param parking
     * @param merchantId
     * @return
     */
    MerchantFeegroupRsp merchantRecharge(Integer parking, Integer merchantId);


    /**
     * 生成商户二维码
     *
     * @param merchantId
     * @return
     */
    MerchantQrCodeGenerationRsp qrCodeGeneration(Integer merchantId);

    /**
     * 作废之前二维码
     *
     * @param merchantId
     * @return
     */
    MerchantInvalidQRCodeRsp invalidQRCode(Integer merchantId);
}
